/**
 * 删除对象中的空值（包括 undefined、null、空字符串、空数组，但保留 0）
 */
export function trim(payload: { [key: string]: unknown }) {
  for (const key in payload) {
    // 如果不是自身的属性（继承自原型链）跳过
    if (!Object.prototype.hasOwnProperty.call(payload, key)) continue;
    const value = payload[key];
    if (
      value === undefined ||
      value === null ||
      value === '' ||
      (Array.isArray(value) && value.length === 0)
    ) {
      delete payload[key];
    }
  }
  return payload;
}
